﻿<?xml version="1.0" encoding="utf-8"?>
<xsd:schema targetNamespace="http://metalx.org/Usb/Ohci/Registers" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="Revision">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;00&lt;/hex&gt;
							
			The revision of the hardware controller.

			Reserved									24 bits
			Revision									8 bits
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="Control">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;04&lt;/hex&gt;
							
			Reserved									21 bits
			RemoteWakeupEnabled				1 bit
			RemoteWakeupSupported			1 bit
			InterruptRouting							1 bit		(0:Host, 1:SMBios)
			FuctionalState							2 bits	(0:Reset, 1:Resume, 2:Operational, 3:Suspend)
			BulkListEnable							1 bit
			ControlListEnable						1 bit
			IsochronousEnable						1 bit
			PeriodicListEnable						1 bit
			ControlToBulkRatio						2 bits
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="CommandStatus">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;08&lt;/hex&gt;
							
			Reserved									14 bits
			SchedulingOverrunCount			2 bits
			Reserved									12 bits
			OwnershipChangeRequest			1 bit
			BulkListFilled								1 bit
			ControlListFilled							1 bit
			Reset										1 bit
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="InterruptStatus">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;0c&lt;/hex&gt;
							
			Reserved									1 bit
			OwnershipChange						1 bit
			Reserved									23 bits
			RootHubStatusChanged				1 bit
			FrameNumberOverflow				1 bit
			UnrecoverableError					1 bit
			ResumeDetected						1 bit
			StartOfFrameSent						1 bit
			WriteDoneHead							1 bit
			SchedulingOverrun						1 bit
	</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="InterruptEnable">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;10&lt;/hex&gt;
							
			MasterInterruptEnable				1 bit
			OwnershipChanged					1 bit
			Reserved									23 bits
			RootHubStatusChanged				1 bit
			FrameNumberOverflow				1 bit
			UnrecoverableError					1 bit
			ResumeDetect							1 bit
			StartOfFrame								1 bit
			WriteDoneHead							1 bit
			ScheduleOverrun						1 bit
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="InterruptDisable">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;14&lt;/hex&gt;
							
			MasterInterruptDisable				1 bit
			OwnershipChanged					1 bit
			Reserved									23 bits
			RootHubStatusChanged				1 bit
			FrameNumberOverflow				1 bit
			UnrecoverableError					1 bit
			ResumeDetect							1 bit
			StartOfFrame								1 bit
			WriteDoneHead							1 bit
			ScheduleOverrun						1 bit
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="CommunicationArea">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;18&lt;/hex&gt;
							
			The address of the communication area.
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="CurrentPeriodicEndpointDescriptorAddress">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;1c&lt;/hex&gt;
							
			The address of the current periodic enpoint.
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="HeadControlEndpointDescriptorAddress">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;20&lt;/hex&gt;
							
			The address of the first entry in the control endpoint descriptor list.
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="CurrentControlEndpointDescriptorAddress">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;24&lt;/hex&gt;
							
			The address of the current control endpoint descriptor.
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="HeadBulkEndpointDescriptorAddress">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;28&lt;/hex&gt;
							
			The address of the first bulk endpoint descriptor.
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="CurrentBulkEndpointDescriptorAddress">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;2c&lt;/hex&gt;
							
			The address of the current bulk endpoint descriptor.
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="HeadDoneTransferDescriptorAddress">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;30&lt;/hex&gt;
							
			The address of the first done endpoint descriptor.
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="FrameInterval">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;34&lt;/hex&gt;
							
			Toggle				1 bit
			MaxPacketSize	15 bits
			Reserved			2 bits
			FrameInterval		14 bits
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="FrameTimeRemaining">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;38&lt;/hex&gt;
							
			SynchronizeToggle			1 bits
			Reserved						17 bits
			FrameTimeRemaining		14 bits
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="FrameNumber">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;3c&lt;/hex&gt;
							
			Reserved			16 bits
			FrameNumber	16 bits
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="PeriodicStartTime">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;40&lt;/hex&gt;
							
			Reserved			18 bits
			StartTime			14 bits
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="LowSpeedThreshold">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;44&lt;/hex&gt;
							
			Reserved			21 bits
			Threshold			11 bits
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="RootHubDescriptorA">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;48&lt;/hex&gt;
							
			GoodPowerTime						8 bits	// 2ms Intervals
			Reserved									11 bits
			OvercurrentNotSupported			1 bit
			PortOverpowerProtection			1 bit
			CompoundDevice						1 bit
			PortSwitchingSupported				1 bit
			PowerSwitchingSupported			1 bit
			PortCount									8 bits
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="RootHubDescriptorB">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;4c&lt;/hex&gt;
							
			PortGlobalPower[1..15]				15 bits
			Reserved									1 bit
			PortNotRemovable[1..15]			15 bits
			Reserved									1 bit
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="RootHubStatus">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;50&lt;/hex&gt;
							
			RemoteWakeupDisable				1 bit
			GlobalOvercurrentIndicator			1 bit
			SetGlobalPower							1 bit
			RemoteWakeupEnabled				1 bit
			Reserved									13 bits
			GlobalOvercurrent						1 bit
			ClearGlobalPower						1 bit
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
  <xsd:element name="RootHubPortStatus">
    <xsd:annotation>
      <xsd:documentation>
							&lt;hex&gt;54&lt;/hex&gt;
							
			The status of each port on the root hub [1..15].
			
			Reserved									11 bits
			PortResetChanged						1 bit
			PortOvercurrentChanged			1 bit
			PortSuspendedChanged				1 bit
			PortEnabledChanged					1 bit
			DeviceConnectedChanged			1 bit
			Reserved									6 bits
			LowSpeedDeviceAttached			1 bit
			PortPower									1 bit
			Reserved									3 bits
			PortReset									1 bit
			PortOvercurrentIndicator			1 bit
			PortSuspended							1 bit
			PortEnabled								1 bit
			DeviceConnected						1 bit
		</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType />
  </xsd:element>
</xsd:schema>